<template>
	<uni-list-item class="fit">
		<template v-slot:body>
			<view class="column fit flex-center">
				<view class="row justify-between no-wrap">
					<view class="row  q-gutter-md">
						<a-ziduan :编辑="取编辑(单项)" :单项="单项" 字段名="名称" :ref="(el) => setInputRef(el, 单项)" :可添加="true"
							:候选值="名称候选值组" 上弹框 />
						<a-ziduan :编辑="取编辑(单项)" :单项="单项" 标题="单价" 字段名="价格" 类型="人民币" width="150" />
						<a-ziduan :编辑="取编辑(单项)" :单项="单项" 字段名="单位" width="150" :可添加="true" :候选值="设置.单位候选值组" 上弹框 />
						<a-ziduan :编辑="取编辑(单项)" :单项="单项" 字段名="数量" 类型="人民币" width="160" :步长="1" :min="1"/>
						<a-ziduan :单项="单项" 字段名="小计" 类型="人民币" />
					</view>
					<view class="q-gutter-y-md column a-w-120 flex-center q-pl-sm">
						<!-- 							<button type="primary" @click="store.改(单项)" size="mini" plain v-if="!取编辑(单项)">改</button>
							<button type="primary" @click="store.确定(单项)" size="mini" plain v-if="取编辑(单项)">✔</button> -->
						<button type="warn" @click="hook.删(单项)" size="mini" plain>删</button>
					</view>
				</view>
			</view>
		</template>
	</uni-list-item>
</template>

<script setup>
	import { computed, ref, watch, watchEffect } from "vue"
	import * as util from '@/amtf/utils'
	const props = defineProps({
		单项: {
			type: Object,
			default: {}
		},
		hook: {
			type: Object,
			default: {}
		},
	});
	// console.log('子表单项 setup ing');
	const { 单项 } = props
	// console.log('props.单项: ',props.单项);
	// console.log('单项: ',单项);
	const { setInputRef } = props.hook

	import useshezhistore from "@/stores/shezhi-store"
	const shezhi = useshezhistore()
	const { a: 设置 } = shezhi

	import useGood from "@/pages/good/store.js"
	const good = useGood()
	const { 名称候选值组 } = good

	function 取编辑(单项) {
		const res = true
		return res
	}

	watchEffect(() => {
		// 直接访问依赖，watchEffect 会自动追踪
		const 小计 = 单项.价格 * 单项.数量 || 0
		单项.小计 = util.数值圆整(小计, 2)
		// console.log('单项.小计: ',单项.小计);
	})

	watch(
		[() => 单项.名称],
		(newValue, oldValue) => {
			// console.log('单项.名称 变化: ', 单项.名称);
			
			let 商品 = util.查元素(good.单项组, 单项.名称, "名称")
			if (商品) {
				单项.价格 = 商品.价格
				单项.单位 = 商品.单位
			}

		}
	);

</script>